package Merlion.util.state;

import java.io.Serializable;
import java.util.Date;

public class LineEntryState implements Serializable {

    private Long id;
    private Long itemId;
    private String itemName;
    private int quantity;
    private double price;
    private int indicativeLeadTime;
    private int amountShipped;
    private int amountInvoiced;
    private double basePrice;
    private double totalPrice;
    private Long pricebookId;
    private String pricingType;
    private int amountInDeliveryOrder;
    private int amountCurrentlyAvailable;
    
    //particular attributes for pickingOrderEntries
    private Long lotId;
    private Long batchId;
    private String status;
    private Long warehouseId;
    private Date deliveryDate;
    private int requestedQty;
    private int pickedQty;

    public LineEntryState() {
    }
    
    public LineEntryState(Long itemId, String itemName, int quantity,
            double price) {
        this.setItemId(itemId);
        this.setItemName(itemName);
        this.setPrice(price);
        this.setQuantity(quantity);
    }

    private LineEntryState(Long itemId, String itemName, int quantity, double price, int indicativeLeadTime) {
        this.setItemId(itemId);
        this.setItemName(itemName);
        this.setPrice(price);
        this.setQuantity(quantity);
        this.setIndicativeLeadTime(indicativeLeadTime);
    }

    //Constructor for Picking Order Entries
    public LineEntryState(Long id, Long itemId, String itemName, Long lotId, Long batchId, String status, Long warehouseId, Date deliveryDate, int requestedQty, int pickedQty) {
        this.id = id;
        this.itemId = itemId;
        this.itemName = itemName;
        this.lotId = lotId;
        this.batchId = batchId;
        this.status = status;
        this.warehouseId = warehouseId;
        this.deliveryDate = deliveryDate;
        this.requestedQty = requestedQty;
        this.pickedQty = pickedQty;
    }

    public int getAmountCurrentlyAvailable() {
        return amountCurrentlyAvailable;
    }

    public void setAmountCurrentlyAvailable(int amountCurrentlyAvailable) {
        this.amountCurrentlyAvailable = amountCurrentlyAvailable;
    }

    
    
    public int getIndicativeLeadTime() {
        return indicativeLeadTime;
    }

    public void setIndicativeLeadTime(int indicativeLeadTime) {
        this.indicativeLeadTime = indicativeLeadTime;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getItemId() {
        return itemId;
    }

    public void setItemId(Long itemId) {
        this.itemId = itemId;
    }

    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    public double getPrice() {
        return price;
    }

    public double getTotalPrice() {
        return totalPrice;
    }

    public void setTotalPrice(double totalPrice) {
        this.totalPrice = totalPrice;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getQuantity() {
        return quantity;
    }

    public void setQuantity(int quantity) {
        this.quantity = quantity;
    }

    public int getAmountInvoiced() {
        return amountInvoiced;
    }

    public void setAmountInvoiced(int amountInvoiced) {
        this.amountInvoiced = amountInvoiced;
    }

    public int getAmountShipped() {
        return amountShipped;
    }

    public void setAmountShipped(int amountShipped) {
        this.amountShipped = amountShipped;
    }

    public double getBasePrice() {
        return basePrice;
    }

    public void setBasePrice(double basePrice) {
        this.basePrice = basePrice;
    }

    public String getPricingType() {
        return pricingType;
    }

    public void setPricingType(String pricingType) {
        this.pricingType = pricingType;
    }

    public Long getPricebookId() {
        return pricebookId;
    }

    public void setPricebookId(Long pricebookId) {
        this.pricebookId = pricebookId;
    }

    public int getAmountInDeliveryOrder() {
        return amountInDeliveryOrder;
    }

    public void setAmountInDeliveryOrder(int amountInDeliveryOrder) {
        this.amountInDeliveryOrder = amountInDeliveryOrder;
    }

    public Long getBatchId() {
        return batchId;
    }

    public void setBatchId(Long batchId) {
        this.batchId = batchId;
    }

    public Date getDeliveryDate() {
        return deliveryDate;
    }

    public void setDeliveryDate(Date deliveryDate) {
        this.deliveryDate = deliveryDate;
    }

    public Long getLotId() {
        return lotId;
    }

    public void setLotId(Long lotId) {
        this.lotId = lotId;
    }

    public int getPickedQty() {
        return pickedQty;
    }

    public void setPickedQty(int pickedQty) {
        this.pickedQty = pickedQty;
    }

    public int getRequestedQty() {
        return requestedQty;
    }

    public void setRequestedQty(int requestedQty) {
        this.requestedQty = requestedQty;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Long getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }
}
